package File_package;

import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;

public class File_demo7 {
    public static void main(String[] args) {
        /*
            public static File[] listRoots()                列出可用的文件系统根
            public String[] list()                          获取当前该路径下所有的内容
            public String[] list(FilenameFilter filter)     利用文件名过滤器获取当前该路径下所有内容
            public File[] listFiles()                       获取当前该路径下所有内容（掌握）
            public File[] listFiles(FileFilter filter)      利用文件名过滤器获取当前该路径下所有内容
            public File[] listFiles(FilenameFilter filter)  利用文件名过滤器获取当前该路径下所有内容
         */

        //1、listRoots()       获取系统中所有的盘符
        File[] arr = File.listRoots();
        System.out.println(Arrays.toString(arr));
        System.out.println("------------------------");

        //2、list()           获取当前该路径下所有的内容
        File f1 = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package");
        String[] arr2 = f1.list();
        for (String s : arr2) {
            System.out.println(s);
        }
        System.out.println("------------------------");

        //3、list(FilenameFilter filter)     利用文件名过滤器获取当前该路径下所有内容
        //需求：我现在要获取File_package文件夹里面所有的demo文件
        File f2 = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package");

        //accept方法的形参，依次表示File_package文件夹里面每一个文件或者文件夹的路径
        //参数一：父级路径
        //参数二：子级路径
        //返回值：如果返回值为true，就表示当前路径保留
        //       如果返回值为false，就表示当前路径舍弃不要
        String[] arr3 = f2.list(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                File src = new File(dir, name);
                if (src.isFile() && name.startsWith("File_")){
                    return false;
                }

                return true;
            }
        });
        System.out.println(Arrays.toString(arr3));


    }
}
